A non-volatile memory structure can include memory cells such as flash memory cells. Memory cells can store data by trapping granulized amounts of charge in, for example, an isolated region of a transistor. This process of trapping charges can be referred to as programming. A controller can estimate an amount of charge stored during readout of the cell. Retrieving data from a memory cell can include applying a read voltage to the transistor and subsequently estimating the readout current which is determined by the amount of charge trapped in the cell.
Various examples of memory cells include a single level cell (SLC) or a multi-level cell (MLC). A SLC can store one bit of information. In such a memory cell, the memory cell can hold or not hold a charge. The presence or absence of a charge indicates, for example, logic 1 when a charge is stored, and logic 0 when no charge is stored. In contrast, a MLC can store more than one bit of information by taking advantage of the ability of such a memory cell to hold varying amounts of charge, e.g., charge levels. For example, in a multi-level memory cell with a maximum number Q of trapped charge, the cell can store more than one bit of information based on storing a granulized amount of charge between 0 and Q. For example, two bits of information can be stored in one multi-level memory cell by trapping any one of four levels of charges: 0, Q/3, 2Q/3, Q.
Devices and systems can store or retrieve data using non-volatile memory such as flash memory. For example, a digital camera can store an image to a non-volatile memory structure. In another example, a digital media player such as an MP3 player can read a digital audio file from non-volatile memory and play the contents of the audio file. Mobile devices such as a mobile phone or a personal digital assistant (PDA) can read data from and write data to one or more non-volatile memory structures.
Devices and systems can access non-volatile memory based on a data segment. A data segment can include a fixed amount of data, e.g., a fixed number of bytes. The devices and systems can issue commands to read and write the data segment to non-volatile memory. A data area can store one or more data segments. Non-volatile memory can perform operations, e.g., reading and programming operations, on a data area of non-volatile memory. Non-volatile memory such as flash memory can be divided into multiple data areas. Each data area can be individually addressed and accessed. A data area can be divided into individual bits or larger aggregate data units such as bytes.